$(function () {
    layui.use(['upload', 'form', 'laydate', 'layer', 'jquery'],
        function () {
            $ = layui.jquery;
            let form = layui.form,
                layer = layui.layer;
            let laydate = layui.laydate;
            let upload = layui.upload;
            //执行一个laydate实例
            laydate.render({
                elem: '#birthday', //指定元素
                trigger: 'click'
            });
            const E = window.wangEditor;
            const editor = new E('#content');
            const editUrl = '/upload';//服务器访问地址
            editor.customConfig.uploadImgShowBase64 = true;  // 使用 base64 保存图片
            editor.customConfig.uploadImgServer = editUrl; // 上传图片到服务器
            editor.customConfig.showLinkImg = false;// 隐藏“网络图片”tab
//配置属性名称，绑定请求的图片数据
            editor.customConfig.uploadFileName = 'file';
            editor.customConfig.withCredentials = true;
// 将图片大小限制为 5M
            editor.customConfig.uploadImgMaxSize = 5 * 1024 * 1024;
            editor.customConfig.uploadImgHooks = {

                success: function (xhr, editor, result) {
                    // 图片上传并返回结果，图片插入成功之后触发
                    // xhr 是 XMLHttpRequst 对象，editor 是编辑器对象，result 是服务器端返回的结果
                    console.log(result);
                },
                // 如果服务器端返回的不是 {errno:0, data: [...]} 这种格式，可使用该配置
                // （但是，服务器端返回的必须是一个 JSON 格式字符串！！！否则会报错）
                customInsert: function (insertImg, result, editor) {
                    // 图片上传并返回结果，自定义插入图片的事件（而不是编辑器自动插入图片！！！）
                    // insertImg 是插入图片的函数，editor 是编辑器对象，result 是服务器端返回的结果

                    // 举例：假如上传图片成功后，服务器端返回的是 {url:'....'} 这种格式，即可这样插入图片：
                    let url = result.data.src;
                    console.log(url);
                    insertImg(url)//回显到富文本里面
                    // result 必须是一个 JSON 格式字符串！！！否则报错
                }
            };

//富文本创建
            editor.create();
            //常规使用 - 普通图片上传
            upload.render({
                elem: '#test1',
                url: '/upload', //此处用的是第三方的 http 请求演示，实际使用时改成您自己的上传接口即可。
                before: function (obj) {
                    //预读本地文件示例，不支持ie8
                    obj.preview(function (index, file, result) {
                        $('#demo1').attr('src', result); //图片链接（base64）
                    });
                },
                done: function (res) {
                    // console.log(res);
                    $("#imgHref").val(res.data.src);
                    //如果上传失败
                    if (res.code > 0) {
                        return layer.msg('上传失败');
                    }
                    //上传成功的一些操作
                    //……
                    $('#demoText').html(''); //置空上传失败的状态
                }
            });
            //得到菜系
            getCuisineData();

            function getCuisineData() {
                $.ajax({
                    url: '/back/cuisine/findAll',
                    data: {enable: 1},
                    type: 'get',
                    dataType: "json",
                    success: function (res) {
                        // console.log(res);
                        setCuisineData(res.data);
                    }
                })
            }

            function setCuisineData(data) {
                let html = '';
                for (let i = 0; i < data.length; i++) {
                    html += '<option value="' + data[i].id + '">' + data[i].name + '</option>';
                }
                // console.log(html)
                $("#cuisineId").html(html);
                form.render();

                // 得到另一个页面传递过来的值
                let item = sessionStorage.getItem("product");
                console.log(JSON.parse(item));
                setData(JSON.parse(item));
            }


            // 将值赋值给表单
//表单赋值
            function setData(data) {
                // $("#id").attr("src","aaa");
                // form.val('form', {
                //     "id": data.id
                //
                //
                // });
                $("#id").val(data.id);
                $("#imgHref").val(data.imgHref);
                $("#marketPrice").val(data.marketPrice);
                $("#normalPrice").val(data.normalPrice);
                $("#cuisineId").val(data.cuisineId);
                $("#name").val(data.name);
                $("input[type=radio][name=enable][value=" + data.enable + "]").attr("checked", true);
                $("#demo1").attr("src", data.imgHref);
                // let aa=$("#id").val();
                editor.txt.html(data.content);
                form.render();//重新渲染表单
            }

            //自定义验证规则
            form.verify({
                nikename: function (value) {
                    if (value.length < 5) {
                        return '昵称至少得5个字符啊';
                    }
                },
                pass: [/(.+){6,12}$/, '密码必须6到12位'],
                repass: function (value) {
                    if ($('#password').val() != $('#L_repass').val()) {
                        return '两次密码不一致';
                    }
                }
            });

            //监听提交
            form.on('submit(update)',
                function (data) {
                    data = data.field;
                    //得到产品描述
                    data.content=editor.txt.html();
                    //发异步，把数据提交给java
                    $.ajax({
                        url: '/back/product/update',
                        data: data,
                        type: 'post',
                        dataType: 'json',
                        success: function (res) {
                            if (res.msg === 'success') {
                                layer.alert("修改成功", {
                                        icon: 6
                                    },
                                    function () {
                                        //关闭当前frame
                                        xadmin.close();

                                        // 可以对父窗口进行刷新
                                        xadmin.father_reload();
                                    });
                            } else {
                                layer.alert("修改失败");
                            }
                        }
                    })
                    return false;
                });

        });
})